#依赖JDK环境(alpine docker为了精简体积，默认没有安装bash)
FROM openjdk:17-jdk-alpine
#同步容器时间地区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN mkdir -p /project

VOLUME ["/project"]

RUN chmod 777 /project

#指定工作目录(设置后任何指令将在此目录下进行，不存在将自动创建)
WORKDIR /project

#构建参数(maven自定义传递参数)
#ARG JAR_FILE_PATH
#复制本地文件至容器里指定的路径(跟ADD指令功能相似)
#ADD ${JAR_FILE_PATH} /demo/maven-docker.jar
COPY ./target/maven-docker.jar /project/maven-docker.jar
RUN chmod +x /project/maven-docker.jar
#指定挂载的目录(共享)
#指定docker容器启动时执行的命令(为了缩短Tomcat启动时间，添加一个系统属性指向 “/dev/./urandom” 作为Entropy Source)
ENTRYPOINT ["java", "-Dserver.port=8080","-Djava.security.egd=file:/dev/./urandom", "-jar", "maven-docker.jar"]

#export tag=$(date +%s)
#export appName=maven-docker
#BUILD // docker build -t maven-docker:latest .
#BUILD // docker build -t ${appName}:${tag} .
#RUN // docker run -d -p 52050:8080 maven-docker:latest
#RUN // docker run -d -p 52050:8080 ${appName}:${tag}

#构建参数(maven自定义传递参数)
#ARG JAR_FILE_PATH
#复制本地文件至容器里指定的路径(跟ADD指令功能相似)
#ADD ${JAR_FILE_PATH} /demo/maven-docker.jar
#ADD target/maven-docker.jar /demo/maven-docker.jar
#RUN chmod +x /demo/maven-docker.jar
#指定挂载的目录(共享)
#VOLUME ["/project"]
#RUN chmod 777 /project
#指定docker容器启动时执行的命令(为了缩短Tomcat启动时间，添加一个系统属性指向 “/dev/./urandom” 作为Entropy Source)
#ENTRYPOINT ["java", "-Dserver.port=8080","-Djava.security.egd=file:/dev/./urandom", "-jar", "/demo/maven-docker.jar"]

## mvn clean package
## mvn spring-boot:run -Dspring-boot.run.jvmArguments=-Dserver.port=51050
## http://12x.xxxxx:xxxxx/test/linlw

#1.打包命令：mvn clean package dockerfile:build -DskipTests
#2.启动命令：docker run --name maven-docker -p 80:8080 -v /home/linlw/tmp/maven-docker/project:/project -d 58319096d218
#3. Jenkins / package -DskipTests -Djdk-1.8 -D-jdk-17
#4. Jenkins / post shell script
#   cd /home/jenkins/jenkins/workspace/maven-jar-docker-run
#   ## mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=51050"
#   docker login -u admin -p xxxxxx 12x.xx.xx.xx:xxxxx
#   export tag=$(date +%s)
#   export appName=maven-docker
#   docker build --build-arg app=${appName}.jar -t ${appName}:${tag} .
#   docker tag ${appName}:${tag} 12x.xx.xx.xx:xxxxx/xxxxx/${appName}:${tag}
#   docker push 12x.xx.xx.xx:xxxxx/xxxxx/${appName}:${tag}
#   docker run --name maven-docker --rm -p 51050:8080 -d ${appName}:${tag}
#   ## docker run --name maven-docker --rm -p 51050:8080 -d maven-docker:1726279394